Frequent content continuity visual assistance in content browsing

ABSTRACT

Embodiments of the present invention provide a method, system and computer program product for frequent content retrieval in a content browser. In an embodiment of the invention, a method for frequent content retrieval in a content browser is provided. The method includes retrieving requested content from a content server from over a computer communications network and comparing the retrieved requested content to a cached version of the requested content. The retrieved requested content thereafter can be annotated to visually emphasize a frequently accessed portion of the retrieved requested content in response to a threshold difference between the retrieved requested content and the cached version. Finally, the annotated retrieved requested content can be returned to a content browser for display therein.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention relates to content browsing and more particularlyto frequent content management in content browsing.

Description of the Related Art

The advent of the global Internet has facilitated access to anunimaginable quantity of information to even the most casual end user.Concurrently with the development of the Internet, developers haveproduced several content retrieval systems, most famously the world wideweb (the “Web”). In the Web, just as in other content retrieval systems,content is stored in different content servers and retrieved into acontent browser upon specifying a network location of the content withinthe content browser. Initially unique to the Web, however, was thenotion of hyperlinking in which content pages incorporate activatablereferences—namely hyperlinks—such that the selection of a hyperlink inone content page led to the loading and display in the content browserof the content referenced by the hyperlink.

In the early years of the Web, Web content and its presentation remainedstatic, with both the formatting and positioning of the contentspecified according to the hypertext markup language (HTML). As such,modifying either content or the presentation of the content in a Webpage involved the direct editing of the Web page—a tedious and errorprone process. As the Web has evolved, however, content is no longerstatic and often is defined according to dynamic methodologies, andprogrammatic code including scripts. Further, the content andpresentation of a Web page are no longer composite elements of a Webpage. Rather, the presentation has been separate from the content, mostnotably through the use of style sheets and other templated presentationtechnologies. Consequently, while content itself can remain static, thelayout of the content in a Web page, or within a Web site can changequite often.

Given the vast expanse of the Web and other content repositories,several mechanisms have been developed for end users to repeatedlyretrieve content of interest. Ranging from the venerable “bookmark” tothe more sophisticated subscription oriented aggregative technologiessuch as portals and syndicated feeds, these frequent content retrievalmechanisms render the Web more manageable for end users. Even still,frequent content is not merely limited to a page of content, but oftenfrequent content is more granular in nature such as a particular portionof a page of content, or even just a display field in a page of content.Thus, while the page itself may remain constant over time, thepresentation and layout of a page can change so as to displace contentof interest thereby obscuring its location from the end user. In thatcircumstance, conventional frequent content retrieval mechanisms willhave failed.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the present invention address deficiencies of the art inrespect to content browsing and provide a novel and non-obvious method,system and computer program product for frequent content retrieval in acontent browser. In an embodiment of the invention, a method forfrequent content retrieval in a content browser is provided. The methodincludes retrieving requested content from a content server from over acomputer communications network and comparing the retrieved requestedcontent to a cached version of the requested content. The retrievedrequested content thereafter can be annotated to visually emphasize afrequently accessed portion of the retrieved requested content inresponse to a threshold difference between the retrieved requestedcontent and the cached version. Finally, the annotated retrievedrequested content can be returned to a content browser for displaytherein.

In one aspect of the embodiment, the content is a Web page and thecontent browser is a Web browser. In another aspect of the embodiment,the annotation is a change in display attributes of text of thefrequently accessed portion. In yet another aspect of the embodiment,the frequently accessed portion is a hyperlink. In even yet anotheraspect of the embodiment, the annotating includes detecting a thresholddifference between the retrieved requested content and the cachedversion, identifying a frequently accessed portion of the cachedversion, locating the frequently accessed portion in the retrievedrequested content and annotating the retrieved requested content tovisually emphasize the frequently accessed portion.

In another embodiment of the invention, a content browsing dataprocessing system is configured for frequent content retrieval. Thesystem includes a host computer with memory and at least one processor.The host computer is communicatively coupled to at least one contentserver from over a computer communications network. The system alsoincludes a frequent content retrieval module executing in the memory ofthe host computer and coupled to a content browser and a page cache. Themodule includes program code enabled upon execution in the host computerto retrieve requested content from a content server from over thecomputer communications network, to compare the retrieved requestedcontent to a cached version of the requested content in the page cache,to annotate the retrieved requested content to visually emphasize afrequently accessed portion of the retrieved requested content inresponse to a threshold difference between the retrieved requestedcontent and the cached version, and to return the annotated retrievedrequested content to the content browser for display therein.

Additional aspects of the invention will be set forth in part in thedescription which follows, and in part will be obvious from thedescription, or may be learned by practice of the invention. The aspectsof the invention will be realized and attained by means of the elementsand combinations particularly pointed out in the appended claims. It isto be understood that both the foregoing general description and thefollowing detailed description are exemplary and explanatory only andare not restrictive of the invention, as claimed.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute partof this specification, illustrate embodiments of the invention andtogether with the description, serve to explain the principles of theinvention. The embodiments illustrated herein are presently preferred,it being understood, however, that the invention is not limited to theprecise arrangements and instrumentalities shown, wherein:

FIG. 1 is a pictorial illustration of a process for frequent contentretrieval in a content browser;

FIG. 2 is a schematic illustration of a content browsing data processingsystem configured for frequent content retrieval; and,

FIG. 3 is a flow chart illustrating a process for frequent contentretrieval in a content browser.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the invention provide for frequent content retrieval in acontent browser. In accordance with an embodiment of the invention, aportion of or an entirety of a page of content can be cached uponretrieval in a content browser. One or more corresponding frequentedelements of the cached page or portion of the page can be stored inassociation with the cached content. Thereafter, upon subsequentretrieval of the page of content, the cached page or portion of the pagecan be compared to a corresponding portion of the subsequently retrievedpage or portion of the page of content. To the extent that the page orportion of the page is determined to have changed based upon thecomparison, the page or portion of the page can be parsed to locate thefrequented elements of the page of content. Finally, the locatedfrequented elements can be visually emphasized in the retrieved page ofcontent so as to alert the end user of the new positioning of thefrequented elements in the retrieved page of content.

In further illustration, FIG. 1 is a pictorial illustration of a processfor frequent content retrieval in a content browser. As shown in FIG. 1,a page of content 130A can be cached in a cache 140 subsequent toretrieval by an end user 110 directing the rendering of the page ofcontent 130A in a content browser 120. One or more content elements150A, 150B of the page of content 130A can be processed by frequentcontent logic 160 in order to identify frequently accessed content 150A,such as a hyperlink in the page of content 130A frequently activated bythe end user 110, or a text input field with which the end user 110frequently interacts in the page of content 130A. Frequently accessedcontent 150A for the page of content 130A can be stored in a table 170in connection with the cached page of content 130A in the cache 140.

Thereafter, when a page of content 130B is retrieved and determined tobe a more recent form of the page of content 130A, the frequent contentlogic 160 can determine if the page of content 130B differs from thepage of content 130A stored in the cache 140. If so, the frequentcontent logic 160 can locate within the page of content 130B thefrequently accessed content 150A and a visual annotation 180 can beplaced within the page of content 130B. For instance, the visualannotation 180 can be a separate graphical element or icon displayed inassociation with the frequently accessed content 150A, or a highlightingattribute of the frequently accessed content 150A such as an enlargedfont of text associated with the frequently accessed content 150A,underlining or bolding of a font of text associated with the frequentlyaccessed content 150A, or a different font background or foregroundcolor of text associated with the frequently accessed content 150A. Inthis way, when the page of content 130B is rendered in the contentbrowser 120, visual attention can be drawn to the new location of thefrequently accessed content 150A in the page of content 130B.

The process described in connection with FIG. 1 can be implementedwithin a computer data processing system. In yet further illustration,FIG. 2 schematically shows a content browsing data processing systemconfigured for frequent content retrieval. The system can include a hostcomputer 210 with memory and at least one processor configured forcommunicative coupling to different servers 220 over computercommunications network 240, for example the global Internet. The hostcomputer 210 can support the execution in memory thereof of a contentbrowser 250 such as a Web browser enabled to retrieve and renderdifferent pages of content served by content servers 230 in respectivelydifferent ones of the serves 220 from over the computer communicationsnetwork 240.

Frequent content retrieval module 300 can be coupled to the contentbrowser 250. Optionally, as shown in FIG. 2, the module 300 can executewithin the same host computer 210 as the content browser 250, though themodule 300 also can execute separately from the content browser 250 in adifferent computer. In either case, the frequent content retrievalmodule 300 can include program code that when executed in memory by acomputer can compare a received page of content (or a portion of areceived page of content) to a corresponding cached version of thereceived page of content or portion thereof disposed in page cache 260.To the extent that the respective pages differ by a threshold amount,one or more frequently accessed page elements can be located within thereceived page or portion thereof and the page or portion thereof can beannotated to visually draw attention to the frequently accessed pageelements.

In even yet further illustration of the operation of the frequentcontent retrieval module 300, FIG. 3 is a flow chart illustrating aprocess for frequent content retrieval in a content browser. Beginningin block 310, a page can be loaded into memory in response to adirective to retrieve the page from a remotely disposed contentrepository such as a Web site. In block 320, a cache can be consulted todetermine if a version of the retrieved page persists in the cache. Indecision block 330, it can be determined whether or not the page can belocated in the cache. If not, in block 340 the retrieved can be renderedin a content browser. Otherwise, the process can continue through block350.

In block 330, if the page can be located in the cache, in block 350 theretrieved page and the cached version of the page can be compared to oneanother. In decision block 360, if the pages do not differ from oneanother beyond a threshold degree, in block 340 the retrieved page canbe rendered in the content browser. Otherwise, in block 370 a frequentelement can be identified for the cached page and in block 380, theidentified frequent element can be located within the retrieved page.Thereafter, in block 390 the retrieved page can be annotated to visuallydistinguish the frequent element in the retrieved page. For example, aniconic or textual element can be placed proximate to the frequentelement in the page so as to draw attention to the frequent element, orthe display characteristics of the frequent element can be modified, forexample by enlarging a font size, varying a font color, or decoratingtext of the frequent element through underlining or bolding.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, radiofrequency, and the like, or anysuitable combination of the foregoing. Computer program code forcarrying out operations for aspects of the present invention may bewritten in any combination of one or more programming languages,including an object oriented programming language and conventionalprocedural programming languages. The program code may execute entirelyon the user's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention have been described above withreference to flowchart illustrations and/or block diagrams of methods,apparatus (systems) and computer program products according toembodiments of the invention. In this regard, the flowchart and blockdiagrams in the Figures illustrate the architecture, functionality, andoperation of possible implementations of systems, methods and computerprogram products according to various embodiments of the presentinvention. For instance, each block in the flowchart or block diagramsmay represent a module, segment, or portion of code, which comprises oneor more executable instructions for implementing the specified logicalfunction(s). It should also be noted that, in some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts, or combinations of special purpose hardware andcomputer instructions.

It also will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks. The computer program instructions may also beloaded onto a computer, other programmable data processing apparatus, orother devices to cause a series of operational steps to be performed onthe computer, other programmable apparatus or other devices to produce acomputer implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Finally, the terminology used herein is for the purpose of describingparticular embodiments only and is not intended to be limiting of theinvention. As used herein, the singular forms “a”, “an” and “the” areintended to include the plural forms as well, unless the context clearlyindicates otherwise. It will be further understood that the terms“comprises” and/or “comprising,” when used in this specification,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

Having thus described the invention of the present application in detailand by reference to embodiments thereof, it will be apparent thatmodifications and variations are possible without departing from thescope of the invention defined in the appended claims as follows:

1. A method for frequent content retrieval in a content browser, themethod comprising: retrieving requested content from a content serverfrom over a computer communications network; consulting a cache todetermine if a cached version of the requested content persists in thecache; in response to the consulting, comparing the retrieved requestedcontent to a cached version of the requested content; computing whetheror not the retrieved requested content differs from the cached versionby at least a threshold amount; and, on condition that the retrievedrequested content differs from the cached version by at least athreshold amount, identifying in the cached version of the requestedcontent, a portion of the cached version of the requested contentspecified as frequently accessed, locating the portion of the cachedversion of the requested content in the retrieved requested content,annotating the retrieved requested content to visually emphasize thelocated frequently accessed portion of the retrieved requested contentand, returning the annotated retrieved requested content to a contentbrowser for display therein.
 2. The method of claim 1, wherein thecontent is a Web page and the content browser is a Web browser.
 3. Themethod of claim 1, wherein the annotation is a change in displayattributes of text of the frequently accessed portion.
 4. The method ofclaim 1, wherein the frequently accessed portion is a hyperlink. 5.(canceled)
 6. A content browsing data processing system configured forfrequent content retrieval, the system comprising: a host computer withmemory and at least one processor, the host computer communicativelycoupled to at least one content server from over a computercommunications network; and, a frequent content retrieval moduleexecuting in the memory of the host computer and coupled to a contentbrowser and a page cache, the module comprising program code enabledupon execution in the host computer to retrieve requested content from acontent server from over the computer communications network, to consulta cache to determine if a cached version of the requested contentpersists in the cache, in response to the consulting, to compare theretrieved requested content to a cached version of the requested contentin the page cache, to compute whether or not the retrieved requestedcontent differs from the cached version by at least a threshold amount,and on condition that the retrieved requested content differs from thecached version by at least a threshold amount, to identify in the cachedversion of the requested content, a portion of the cached version of therequested content specified as frequently accessed, to locate theportion of the cached version of the requested content in the retrievedrequested content, to annotate the retrieved requested content tovisually emphasize the located frequently accessed portion of theretrieved requested content and to return the annotated retrievedrequested content to the content browser for display therein.
 7. Thesystem of claim 6, wherein the frequent content retrieval module and thecontent browser both execute in the memory of the host computer.
 8. Thesystem of claim 6, wherein the content is a Web page and the contentbrowser is a Web browser.
 9. The system of claim 6, wherein theannotation is a change in display attributes of text of the frequentlyaccessed portion.
 10. The system of claim 6, wherein the frequentlyaccessed portion is a hyperlink.
 11. A computer program product forfrequent content retrieval in a content browser, the computer programproduct comprising: a computer readable storage medium having computerreadable program code embodied therewith, the computer readable programcode comprising: computer readable program code for retrieving requestedcontent from a content server from over a computer communicationsnetwork; computer readable program code for consulting a cache todetermine if a cached version of the requested content persists in thecache; computer readable program code, in response to the consulting,for comparing the retrieved requested content to a cached version of therequested content; computer readable program code for computing whetheror not the retrieved requested content differs from the cached versionby at least a threshold amount; and, computer readable program code for,on condition that the retrieved requested content differs from thecached version by at least a threshold amount, identifying in the cachedversion of the requested content, a portion of the cached version of therequested content specified as frequently accessed, locating the portionof the cached version of the requested content in the retrievedrequested content, annotating the retrieved requested content tovisually emphasize the located frequently accessed portion of theretrieved requested content and, returning the annotated retrievedrequested content to a content browser for display therein.
 12. Thecomputer program product of claim 11, wherein the content is a Web pageand the content browser is a Web browser.
 13. The computer programproduct of claim 11, wherein the annotation is a change in displayattributes of text of the frequently accessed portion.
 14. The computerprogram product of claim 11, wherein the frequently accessed portion isa hyperlink.
 15. The computer program product of claim 11, wherein thecomputer readable program code for annotating comprises: computerreadable program code for detecting a threshold difference between theretrieved requested content and the cached version; computer readableprogram code for identifying a frequently accessed portion of the cachedversion; computer readable program code for locating the frequentlyaccessed portion in the retrieved requested content; and, computerreadable program code for annotating the retrieved requested content tovisually emphasize the frequently accessed portion.